package com.srcptit.trainning.bai1;

import java.util.Scanner;

public class JavaBasic {
	
	/**
	 * Cấu trúc điều kiện If
	 * So sánh 2 số a và b
	 */
	public static void conditionIf(int a, int b) {
		
		if(a > b) {	// Nếu đúng
			System.out.println(a + " lớn hơn " + b);
		} else if(a < b) {	// Nếu đúng
			System.out.println(a + " bằng " + b);
		} else {		// Nêu sai
			System.out.println(a + " nhỏ hơn " + b);
		}
	}
	
	/**
	 * Cấu trúc điều kiện Switch
	 * Kiểm tra  là tháng mấy trong năm
	 * @param n Số nguyên, ký tự
	 */
	public static void conditionSwitch(int n) {
		switch(n) {
			case 1:	// Trường hợp nếu n = 1
				System.out.println("Tháng Một");
				break;	// Break: Thoát khỏi switch
			case 2:
				System.out.println("Tháng Hai");
				break;
			case 3:
				System.out.println("Tháng Ba");
				break;
			case 4:
				System.out.println("Tháng Tư");
				break;
			case 5:
				System.out.println("Tháng Năm");
				break;
			case 6:
				System.out.println("Tháng Sáu");
				break;
			case 7:
				System.out.println("Tháng Bảy");
				break;
			case 8:
				System.out.println("Tháng Tám");
				break;
			case 9:
				System.out.println("Tháng Chín");
				break;
			case 10:
				System.out.println("Tháng Mười");
				break;
			case 11:
				System.out.println("Tháng Mười Một");
				break;
			case 12:
				System.out.println("Tháng Mười Hai");
				break;
			default:	// Mặc định, không phải là giá trị cụ thể nào.
				System.out.println("Số vừa nhập không phải là tháng");
		}
	}
	
	/**
	 * Cấu trúc vòng lặp for
	 * - Tính tổng các số từ n đến m (m > n)
	 * @param n Giá trị đầu
	 * @param m Giá trị cuối
	 */
	public static void sumFor(int n, int m) {
		int sum = 0;
		for(int i = n; i <= m; ++i) {
			sum += i;
		}
		System.out.println("Tổng: " + sum);
		// Tổng các số chẵn từ m đến n
		int sum2 = 0;
		for(int i = m; i >= n; --i) {
			if(i%2 == 0) {
				sum2 += i;
			}
		}
		System.out.println("Tổng các số chẵn: " + sum2);
	}
	
	/**
	 * Cấu trúc vòng lặp while
	 * - Tính tổng các số từ n đến m (m > n)
	 * @param n Giá trị đầu
	 * @param m Giá trị cuối
	 */
	public static void sumWhile(int n, int m) {
		int sum = 0;
		int i = n;
		while(i <= m) {
			sum += i;
		}
		System.out.println("Tổng: " + sum);
		// Tổng các số chẵn từ m đến n
		int sum2 = 0;
		i = m;
		while(i >= n) {
			if(i%2 == 0) {
				sum2 += i;
			}
		}
		System.out.println("Tổng các số chẵn: " + sum2);
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// So sánh 2 số nhập từ bàn phím
		System.out.println("Nhập 2 số nguyên cần so sánh: ");
		System.out.println("Nhập số a: ");
		int a = sc.nextInt();
		System.out.println("Nhập số b: ");
		int b = sc.nextInt();
		// Gọi phương thức so sánh 2 số a, b
		conditionIf(a, b);
		
		// Kiểm tra số nhập vào là tháng mấy trong năm
		System.out.println("Nhập số cần kiểm tra: ");
		int n = sc.nextInt();
		// Gọi phương thức kiểm tra một số là tháng mấy trong năm
		conditionSwitch(n);
		
		// Tính tổng các số từ n đến m
		System.out.println("Nhập 2 số n và m (n < m): ");
		System.out.println("Nhập số n: ");
		n = sc.nextInt();
		System.out.println("Nhập số m: ");
		int m = sc.nextInt();
		// Gọi hàm tính tổng các số từ n đến m
		System.out.println("Hàm FOR");
		sumFor(n, m);
		System.out.println("Hàm WHILE");
		sumWhile(n, m);
	}
}
